Systems and methods for path maximum transmission unit discovery

ABSTRACT

An information handling system is provided. The information handling system includes a plurality of network devices. One of the plurality of network devices is a source device and another of the plurality of network devices is a destination device. If path maximum transmission unit (PMTU) information for a path between the source device and the destination device is not known, the source device sends a PMTU send packet to the destination device, and the destination device sends a PMTU receive packet with a received PMTU value to the source device. Other associated systems and methods for PMTU discovery are also provided.

BACKGROUND

1. Technical Field

The present disclosure is related to information handling systems. Inparticular, embodiments disclosed herein are related to the discovery ofthe path maximum transmission unit in a route.

2. Discussion of Related Art

As the value and use of information continues to increase, individualsand businesses seek additional ways to process and store information.One option available to users is information handling systems. Aninformation handling system generally processes, compiles, stores,and/or communicates information or data for business, personal, or otherpurposes thereby allowing users to take advantage of the value of theinformation. Because technology and information handling needs andrequirements vary between different users or applications, informationhandling systems may also vary regarding what information is handled,how the information is handled, how much information is processed,stored, or communicated, and how quickly and efficiently the informationmay be processed, stored, or communicated. The variations in informationhandling systems allow for information handling systems to be general orconfigured for a specific user or specific use such as financialtransaction processing, airline reservations, enterprise data storage,or global communications. In addition, information handling systems mayinclude a variety of hardware and software components that may beconfigured to process, store, and communicate information and mayinclude one or more computer systems, data storage systems, andnetworking systems.

Currently, there is increasing demand and use of networks to exchangeand manage information of many different kinds. The equipment used inthe exchange of information between distant locations is nothomogeneous. Among the functional variations that are often encounteredare different maximum transmission units (MTUs) of different routers ina path that must be traveled. Certain network devices and protocolsprovide for different sized MTUs. Understanding the path MTU of a givenpath can be useful in providing optimized transmission through thatpath. However, current approaches to determining path MTUs have not beenentirely satisfactory.

SUMMARY

Consistent with some embodiments, there is provided an informationhandling system. The information handling system includes a firstnetwork device that has a plurality of ports for sending and receivingpackets, in which at least one of the ports has an associated maximumtransmission unit equal to a first value. The first network device alsohas a computer processor in communication with the plurality of portsand a memory in communication with the computer processor. The memoryincludes a path maximum transmission unit (PMTU) table that associateseach of a plurality of destination addresses existing within theinformation handling system with a maximum transmission unit (MTU) valuein an MTU field. Additionally, the first network device is configured tosend a PMTU send packet when a particular destination address not havingan associated MTU value in an associated MTU field of the PMTU table isto be accessed.

Consistent with some other embodiments, there is provided an informationhandling system that includes a plurality of network devices. In aparticular instance, one of the plurality of network devices is a sourcedevice and another of the plurality of network devices is a destinationdevice. If path maximum transmission unit (PMTU) information for a pathbetween the source device and the destination device is not known, thesource device sends a PMTU send to the destination device, thedestination device sends a PMTU receive packet with a received PMTUvalue to the source device.

Consistent with some other embodiments, there is provided a method fordetermining a maximum transmission unit (MTU) of a path between a sourcenetwork device and a destination network device. The method includessteps of transmitting a path maximum transmission unit (PMTU) sendpacket with an initial PMTU value from the source network device to thedestination network device and transmitting a PMTU receive packet fromthe destination network device to the source network device, the PMTUreceive packet including a received PMTU value. The method furtherincludes a step of updating a PMTU table on the source network devicewith the received PMTU value included in the PMTU receive packet.

These and other embodiments will be described in further detail belowwith respect to the following figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of an information handling system that includes aplurality of links between network devices, the links having differentmaximum transmission units (MTU).

FIG. 2 is a diagram of an information handling system including atransmission path through a plurality of network devices.

FIG. 3 is a diagram of an information handling system that includes analternate path having the lowest MTU.

FIG. 4A is diagram of a packet traversing an information handling systemfor path maximum transmission unit discovery (PMTUD) according anembodiment.

FIG. 4B is a diagram of a PMTU send packet returning through aninformation handling system according to an embodiment of the presentdisclosure.

FIG. 4C is a diagram of an information handling system implementing aPMTUD system according to an embodiment of the present disclosure.

FIG. 4D is a diagram of an information handling system implementing aPMTUD system with a confirmation packet according to an embodiment ofthe present disclosure.

FIG. 5 is a diagram of an information handling system implementing aPMTUD system in a multicast context according to an embodiment of thepresent disclosure.

FIG. 6 is a functional diagram of a network device such as may be usedto implement PMTUD according to an embodiment of the present disclosure.

FIG. 7 is a diagram of a PMTU send packet sent to request PMTUinformation.

FIG. 8 is a diagram of PMTU receive packet sent to deliver PMTUinformation

FIG. 9 is a flowchart of a method for determining a maximum transmissionunit (MTU) of a path between a source network device and a destinationnetwork device

For clarity of discussion, elements having the same designation in thedrawings may have the same or similar functions. The drawings may bebetter understood by referring to the following Detailed Description.

DETAILED DESCRIPTION

In the following description specific details are set forth describingcertain embodiments. It will be apparent, however, to one skilled in theart that the disclosed embodiments may be practiced without some or allof these specific details. The specific embodiments presented are meantto be illustrative, but not limiting. One skilled in the art may realizeother material that, although not specifically described herein, iswithin the scope and spirit of this disclosure.

For purposes of this disclosure, an information handling system mayinclude any instrumentality or aggregate of instrumentalities operableto compute, classify, process, transmit, receive, retrieve, originate,switch, store, display, manifest, detect, record, reproduce, handle, orutilize any form of information, intelligence, or data for business,scientific, control, or other purposes. For example, an informationhandling system may be a personal computer, a network storage device, orany other suitable device and may vary in size, shape, performance,functionality, and price. The information handling system may includerandom access memory (RAM), one or more processing resources such as acentral processing unit (CPU) or hardware or software control logic,ROM, and/or other types of nonvolatile memory. Additional components ofthe information handling system may include one or more disk drives, oneor more network ports for communicating with external devices as well asvarious input and output (I/O) devices, such as a keyboard, a mouse, anda video display. The information handling system may also include one ormore buses operable to transmit communications between the varioushardware components.

Additionally, some embodiments of information handling systems includenon-transient, machine-readable media that include executable code thatwhen run by a processor, may cause the processor to perform the steps ofmethods described herein. Some common forms of machine-readable mediainclude, for example, floppy disk, flexible disk, hard disk, magnetictape, any other magnetic medium, CD-ROM, any other optical medium, punchcards, paper tape, any other physical medium with patterns of holes,RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge,and/or any other medium from which a processor or computer is adapted toread.

FIG. 1 depicts an information handling system 100 that includes aplurality of network devices. As illustrated, the plurality of networkdevices includes a network device 102, a network device 104, a networkdevice 106, a network device 108, and a network device 109. In someembodiments, network devices 102, 104, 106, 108, and 109 are Layer 2devices. However, as depicted the network devices are Layer 3 routers.The plurality of network devices is connected by a plurality of links.Each of the links can be described in terms of a maximum transmissionunit (MTU). The MTU of a link describes the largest size data packetthat can transmitted over the link at a single time. The MTU of a linkcan be influenced by the communication interfaces of the ports, theprotocols running over the ports, and other factors. In general, a linkwith a larger MTU can provide greater efficiency as the amount of datacontained in a packet relative to the header or headers of the packetincreases. However, there are drawbacks to large MTU sizes as well.

In information handling system 100, a link 110 connects a port on thenetwork device 102 to a port on the network device 104. Similarly a link112 connects network device 104 to a network device 106, a link 114connects network device 106 to network device 108, and a link 116connects network device 108 to a network device 109. Each of links 110,112, 114, and 116 has an associated MTU that characterizes the link. Forinstance link 110 has an MTU of 1800 bytes, links 112 and 114 both haveMTUs of 1700 bytes, and link 116 has an MTU of 1600 bytes, the smallestof the links in information handling system 100.

In Internet Protocol Version 4 (IPv4) the variations in MTU are oftenhandled using fragmentation, splitting a single larger packet into morethan one smaller packet. So when a packet is sent from network device102 to network device 109, the packet may be fragmented, split into twoor more packets by network device 104, with the fragmented packets thentravelling to network device 106. Since the MTU of link 114 is the sameas that of 112, no fragmenting occurs. But, depending on how the packetis fragmented, one of the fragmented packets may be fragmented yet againby the network device 108 as it prepares to transmit the packet overlink 116, which has an MTU of 1600 bytes.

Alternatively, a packet with a size exceeding the MTU of a particulardevice is simply dropped and a responsive control packet, an InternetControl Message Protocol (ICMP) packet, is sent to the source,indicating the sent packet was dropped and also indicating the MTU ofthe particular device. For example, the network device 102 sends an1800-byte packet over link 110 to network device 104. This packet sizeis equal to the MTU of link 110; however it is greater than the MTU oflink 112, 1700 bytes. Since the packet is too big to send withoutfragmenting, the network device 104 sends an ICMP packet back to networkdevice 102 and drops the packet it received. The ICMP packet indicatesthe MTU of link 112 so that network device 102 can appropriately resizethe packet when it resends the packet. Given this response, the processis repeated again, with network device 108 dropping the packet andsending an ICMP packet indicating that the MTU of link 116 is 1600bytes.

While Internet Protocol Version 6 (IPv6) does not support fragmentationas IPv4 did, it does support ICMPv6 messages to indicate that a packetis too big to pass through a device in the transmission path. TheseICMPv6 messages are called “Packet Too Big” messages and are sent andoperate similar to the ICMP packets discussed above in connection withIPv4. The repeated dropping of packets and sending of ICMPv6 “Packet TooBig” messages adds delay into information handling system 100. Thisdelay is seen more acutely in FIG. 2.

FIG. 2 depicts an information handling system 200 that includessignificantly more network devices than are illustrated in theinformation handling system 100 of FIG. 1. As depicted, informationhandling system 200 includes a network device 102, a network device 104,a network device 106, and a network device 202. The depicted embodimentof information handling system 200 includes 254 network devices, but mayinclude any number of network devices. The MTUs of the first threelinks, links 110, 112, and 114 are included as 1800, 1700, and 1600bytes, respectively. The MTUs of the other links in information handlingsystem 200 increase continually with proximity to the network device202. However, IPv6 includes a minimum size of 1280 bytes. The links ofinformation handling system 200 do not go below this threshold.

In some embodiments of information handling system 200, ICMPv6 “PacketToo Big” messages are sent at every network device include networkdevices 102 and 202. The messages are sent when the packet sent fromnetwork device 102 is dropped. Thus, in order to establish the path MTU(PMTU), the lowest MTU of any link between network device 102 andnetwork devices 202, network device 102 resends a packet 253 times.Additionally, in some embodiments there is a delay before sending thenext packet. This “retransmission time” can be as much as a second.Given the number of network devices in information handling system 200,the total delay could add more than four minutes of delay.

FIG. 3 depicts an information handling system 300 that includes aplurality of network devices. As illustrated, the plurality of networkdevices includes a network device 102, a network device 104, a networkdevice 106, and a network device 108. In information handling system300, a link 110 connects a port on the network device 102 to a port onthe network device 104. Similarly a link 112 connects the network device104 to a network device 106, while a link 114 connects the networkdevice 106 to network device 108. This is similar to informationhandling system 100 of FIG. 1. Additionally, a link 316 is depicted thatconnects the network device 104 directly to the network device 108. Eachof links 110, 112, 114, and 316 has an associated MTU that characterizesthe link. For instance link 110 has an MTU of 1800 bytes, links 112 and114 both have an MTU of 1700 bytes, and link 316 has an MTU of 1600bytes, the smallest of the links in information handling system 300.

When a packet is to be sent from network device 102, acting as a sourcedevice, with network device 108 as the destination device, the maximumsize of the packet depends on the path by which it is sent. As depicted,the most efficient path may be considered to be the path that includeslinks 110 and 316, path 320. This path includes two hops, rather thanthe three included in a path 322, the path with links 110, 112, and 114.But the PMTU of path 120 is set by link 316 with its MTU of 1600 bytes,rather than path 122's PMTU of 1700 bytes set by links 112 and/or 114.

As depicted, path 320 is a preferable to path 322, and therefore is usedto transmit packets from network device 102 to network device 108. Inthe event that link 316 fails, the information handling system 300 mayswitch from path 320 to path 322 for transmission from network device102 to network device 108. However, the network device 102 has beenconfigured with the PMTU of 1600 bytes for transmissions with networkdevice 108 as the destination. Therefore, information handling system300 may fail to utilize the full capacity of path 322, which has a PMTUof 1700 bytes.

A reliable PMTU discovery (PMTUD) process may help determine andmaintain PMTU information so as to optimize performance of informationhandling systems. Due to numerous causes, the ICMP messages often failto reach the source network device, leading to PMTUD failures. Somevendors have suggested disabling PMTUD rather than deal with theproblems, which can also present security risks. Disabling PMTUD posesless of a problem in IPv4 networks than in IPv6 networks, because IPv4networks can fall back on fragmentation.

FIG. 4A depicts an information handling system 400 that is similar inmany ways to information handling systems 100, 200, and 300 of FIGS. 1,2, and 3, respectively. Information handling system 400 includes aplurality of network devices. As illustrated, information handlingsystem 400 includes network devices 402, 404, 406, and 408 connected bylinks 410, 412, and 414 as shown. Other embodiments include more orfewer network devices. As depicted, each of the plurality of networkdevices is a router, but in some embodiments, network devices 402 and/or408 are hosts. Network device 402 includes a table of PMTU information,associating destination addresses with PMTU values. FIGS. 4A, 4B, and 4Cdepict the gathering and application of PMTU information according to anembodiment.

In FIG. 4A, a connected host (not depicted) directs network device 402to send a packet to network device 408. The network device 402 checksthe table of PMTU information which does not include a PMTU value in thePMTU field associated with the address of the network device 408. Thenetwork device 402 acquires PMTU information by forming and sending aPMTU send packet 420. An embodiment of such a packet is presentedfurther below in FIG. 7. In the depicted embodiment, the PMTU sendpacket 420 is created by appending a PMTU header onto the packet to besent. The PMTU header includes a PMTU value field. Since the table ofPMTU information does not contain an entry for the destination ofnetwork device 408, the network device 402 sends the packet out sizedaccording to a value associated with the link 410, the known first hopin the path. This value associated with the known first hop is insertedinto the PMTU value field before the PMTU send packet 420 is sent out.

The network device 404 receives the PMTU send packet 420, and determinesfrom the PMTU header that PMTU information is being requested. Thenetwork device 404 also examines the header to determine the destinationaddress of the packet, which in this example is network device 408. Thenetwork device 404 checks a table stored in memory that includes MTUinformation for link 412, which connects network device 404 to itsneighbor, network device 406. The table indicates that the MTU of link412 is 1700 bytes, 100 bytes smaller than the current size of the PMTUsend packet 420. The network device 404 inserts the MTU value of link412 (1700 bytes) into the PMTU value field and removes at least 100bytes of data from the PMTU send packet 420 before sending the back overlink 412 to the network device 406.

The network device 406 responds to the PMTU send packet 420 similarly tonetwork device 404. It recognizes the PMTU send packet 420 as a PMTUsend packet from the PMTU header thereof, determines the MTU value ofthe link to the next hop (in this case, the MTU of link 414 is 1600bytes) toward its destination, inserts the determined MTU value (1600bytes) into the PMTU header before resizing the PMTU send packet 420 bya decrease of at least 100 bytes and sending it to the network device408. In general, a network device replaces or updates the MTU valueincluded in the PMTU send packet if the MTU value is of the next hoplink is smaller than the MTU value already indicated in the PMTU sendpacket. In embodiments of information handling system 400 that run theIPv6 protocol, the PMTU send packet 420 is not resized below 1280 bytes.

FIG. 4B illustrates the response of information handling system 400after the network device 408, the destination device, receives the PMTUsend packet 420 from network device 406. The network device 408 receivesthe PMTU send packet 420 and identifies it from its PMTU header as aPMTU send packet. As received by the network device 404, the value inthe PMTU value field is the lowest MTU of all the links traversed toarrive at the destination device. In this example, a 1600-byte PMTUvalue is included in the PMTU send packet 420. This is the PMTU valuethat is to be communicated back to the network device 402, the sourcedevice.

To communicate this, the network device 408 makes a PMTU receive packet422 that includes a PMTU header that indicates it is a PMTU receivepacket and includes the PMTU value received from the PMTU send packet420. The network device 408 sizes the PMTU receive packet 422 to be nolarger than the PMTU value received. In this example, the PMTU receivepacket 422 is 1600 bytes. Since the PMTU receive packet 422 is sizedaccording to the PMTU of the transmission path between the destinationnetwork device 408 and the source network device 402, the packet is sentwithout resizing and without altering the PMTU value included in theheader. In some embodiments, the PMTU receive packet 422 is 1280 bytes,the minimum packet size in the IPv6 standard.

FIG. 4C illustrates the use of the PMTU information in informationhandling system 400. When network device 402 receives the PMTU receivepacket 422, from the header it knows that this is a PMTU receive packet.Using the source address of the packet, network device 408, andinformation from the header, the network device 402 extracts the PMTUvalue of 1600 bytes and inserts it into the appropriate location in thetable of PMTU information. A data packet is then sent being sizedaccording to the PMTU value so that the packet is not dropped for beingtoo large and is sent with as much data as possible. This data packet,data packet 424, is sent from network device 402 to network device 404to network device 406 and, finally, to its destination, network device408. The data packet 424 does not need to be resized by network devices404 and 406 in order to reach network device 408 intact due to the PMTUdiscovery system of FIGS. 4A and 4B.

The PMTUD system of information handling system 400 can also adapt tochanges in the path between a source device and a destination device. Insome embodiments, if an additional PMTU receive packet is received bynetwork device 402 that include network device 402 as the destination,the PMTU value included in the additional PMTU receive packet iscompared with the PMTU value already included in the table of PMTUinformation. The additional PMTU receive packet may be a PMTUconfirmation packet or responsive to a PMTU send packet sent to amulticast address. If the PMTU value of the additional PMTU receivepacket is smaller than the PMTU value in the table, the PMTU value inthe table is replaced with the smaller value. If the PMTU value of theadditional PMTU receive packet is larger than the PMTU value in thetable, the source device waits until a PMTU confirmation timer isexpired. In some unicast embodiments, the source device may not wait. Ifno PMTU update is received during that period that contains the PMTUvalue currently stored in the table of PMTU information, and no otherconflicting information is received, the table is updated with thelarger PMTU value received in the additional PMTU receive packet.

FIG. 4D illustrates the sending of a PMTU confirmation packet 426. PMTUconfirmation packets, like the PMTU confirmation packet 426, may be senton a periodic basis, determined by a timer 440, to account for anychanges that may occur in an information handling system, like thosediscussed in connection with information handling system 300 of FIG. 3.For example, the timer 440 indicates a lower period of about a minute insome embodiments. Network device 402 may form a PMTU confirmation packet426 by adding a PMTU header to a data packet. The size of the PMTUconfirmation packet 426 is determined by the known MTU of the currentnext hop, in this example the MTU of link 410, rather than the PMTUvalue associated with the destination in a table of PMTU information. Ifa PMTU receive packet is returned from the destination in response tothe PMTU confirmation packet 426 with a lower PMTU value 430, then theoriginal data packet is resent so as to avoid the loss of data. The PMTUreceive packet responsive to the PMTU confirmation packet 426 is similarto PMTU receive packet 422 of FIG. 4B.

While the depicted embodiment of information handling system 400includes a path with four network devices, other embodiments may containmore or fewer. In some embodiments, the MTUs of links may increase,decrease, or remain the same between two links. Where the MTU of asecond encountered link is larger or the same as the MTU of a firstencountered link, the PMTU value is not updated. However, when the MTUof the second encountered link is smaller, the PMTU value is updated.

Additionally, in some embodiments, the integrity of the PMTUD system andprocess can be guarded by the inclusion of authentication data. Thenetwork device 402 inserts authentication data into the header of PMTUcontrol packets, i.e. PMTU send packets and PMTU confirmation packets.The authentication data is a cryptographically auto-generated value, andcan maintained in relation to a particular destination, so that all PMTUcontrol packets sent to a particular destination use the sameauthentication data. Alternatively, authentication data may be uniquelygenerated each time a PMTU control packet is formed. When a destinationdevice, such as the network device 408 forms a PMTU receive packet, itincludes the authentication data in the PMTU header. When the PMTUreceive packet arrives at the source device, the authentication data isexamined to ensure that the information is a legitimate response to thePMTU send packet.

FIG. 5 depicts the operation of the PMTUD system in a multicast contextof information handling system 500. Information handling system 500 issimilar to information handling system 400 of FIGS. 4A, 4B, and 4C, butit further includes additional network devices 502, 504, and 506. Asdepicted, network device 502 is connected by a link 510 to the networkdevice 402. The network device 506 is connected to the network device406 by a link 514. In turn, the network device 504 is connected by alink 512 to the network device 502, which in the depicted embodiment isa server.

As illustrated, network device 504, 506, and 408 are members of amulticast group identified by a multicast address. Some embodimentscontain more than one multicast groups. If network device 504 isdirected to send a packet to the multicast address, the network device504 checks its table of PMTU information to determine how to optimallysize the packet. Information handling system 500 is configured to use aPMTUD system like that described above in connection with FIGS. 4A, 4B,and 4C. The network device 402 sends out a PMTU send packet on all ofits ports associated with the multicast address. In the depictedembodiment, the PMTU send packet is sent out over links 510 and 410.

As illustrated in FIG. 5, links 510 and 410 have different MTUs, 1700bytes and 1800 bytes, respectively. In the depicted embodiment, thecurrent link determines the size of the PMTU send packet. Thus asillustrated, the PMTU send packet sent to network device 404 is 1800bytes, while the PMTU send packet sent to network device 502 is 1700bytes. In some embodiments, differences in the levels are resolved priorto sending the PMTU packets to the members of a multicast address. Insuch embodiments, the smallest of the two depicted next-hop MTUs can beutilized. In information handling system 500, packets to network devices502 and 402 would be 1700 bytes, the limit provided by link 510. Similardecision processes may be used at network device 406, when again morethan one multicast group member is a single hop away.

Eventually, each of network devices 504, 408, and 506 receives the PMTUsend packet. Due to differences in the paths to each of these networkdevices, the PMTU value included in the PMTU header of each packet isdifferent. The PMTU of the path to the network device 504 is 1500 bytes,limited by link 512; 1700 bytes on the path to the network device 408;and 1600 bytes on the path to network device 506. Each of the networkdevices 504, 506, and 408 responds to the PMTU send packet with a PMTUreceive packet, so the network device 402 receives a PMTU receive packetfrom each destination device addressed by the multicast address. Thenetwork device 402 receives three PMTU receive packets each indicating adifferent PMTU value. The smallest PMTU value is selected and includedin table of PMTU information where it is associated with the multicastaddress. Thereafter, each time network device 402 is directed to send apacket to the multicast address, the packets to all destinations aresize at 1500 bytes to help ensure that no packet is dropped forexceeding the MTU of any link.

FIG. 6 is a functional diagram of an information handling system ordevice 600 that may be useful in understanding how the network devicesof information handling systems 400 and 500 are implemented. Informationhandling device 600 may be a server, a switch, a router, and/or a host.Hereinafter, information handling device 600 is referred to as networkdevice 600. Many other features, modules, and components are included inembodiments of the network device 600, only some of which are discussedherein.

Network device 600 includes a computer processor 602 in communicationwith a memory 604 and a plurality of ports 606A-D. While depicted as asingle processor in FIG. 6, computer processor 602 may be a plurality ofcomputer processors functioning together to provide various capabilitiesand features. In some embodiments, computer processor 602 and memory 604are combined in an application specific integrated circuit (ASIC). Inthe depicted embodiment, memory 604 is a solid-state memory component.The computer processor 602 is in communication with a plurality ofports. As depicted, network device 600 includes four ports 606A, 606B,606C, and 606D, while other embodiments include more or fewer ports.

Computer processor 602 provides a number of functional modules,including a packet inspection module 612 and a packet format module 622.In some embodiments, each of the functional modules may be provided byan individual ASIC, while in others the modules are provided by acombination of hardware and software sub-components. The packetinspection module 612 is configured to read packets and extractinformation such as a PMTU value in a PMTU header, other destination andsource information in the header or headers of packets, as well aspayload data.

Some or all of the inspected information can be sent to memory 604 andstored in the PMTU information table 614. The PMTU information table 614includes a plurality of fields relating PMTU values to destinationaddresses. Other information accessible to the computer processor 602includes port assignments and next hop MTUs.

The network device 600 also includes a packet format module 622 that canform and format packets in a variety of ways. For example, the packetformat module 622 adds PMTU header information to data packets to createPMTU send packets, PMTU confirmation packets, and PMTU receive packets.The packet format module 622 can also copy and resize packets to allowthem to be transmitted over a link with an MTU smaller than that onwhich they are received. In short, network device 600 is capable ofacting as the destination devices, network devices, and intermediatedevices described in FIGS. 4 and 5.

FIG. 7 is a diagram of a header of a PMTU send packet 700. The depictedembodiment of the PMTU send packet 700 is similar in many ways to astandard IPv6 packet. The packet 700 includes a main header 702, in thisembodiment an IPv6 header, and an extension header 704, along with apayload 706. The main header 702 includes fields for version, traffic,class, flow label, next header, and hop limit, as well as source anddestination address fields. As depicted, the next header field of themain header is filled with a PMTU extension header value 708 thatinforms the receiving network device is associated with the extensionheader 704, which is a PMTU extender header. In the depicted embodiment,actual numerical value used in the next header field as the PMTUextension header value 708 is 143, though in other embodiments, othernumbers not currently defined by the IPv6 standard may be used. Bydesignating a single PMTU extension header value, such as 143, to beused, multiple makes of hardware may be used interchangeably whilemaintaining the PMTUD process.

The PMTU extension header 704 includes a PMTU value 710. During theprocess of PMTU discovery, whenever a lower MTU value is encountered,the PMTU value 710 is replaced with that lower MTU value as describedabove. In the depicted embodiment, the PMTU value 710 is the known valueof first hop link. The PMTU extension header 704 further includeauthentication data 712 as discussed above in connection with theinformation handling system 400 of FIGS. 4A, 4B, and 4C.

FIG. 8 is a diagram of the header of a PMTU receive packet 800. Thedepicted embodiment of the PMTU receive packet 800 is similar to thePMTU send packet 700 of FIG. 7 in many respects, such as including amain header 802 conforming to the IPv6 standard. For explanatorypurposes, the PMTU receive packet 800 is discussed as if it isresponsive to the PMTU send packet 700 of FIG. 7. In addition to themain header 802, the PMTU receive packet includes a PMTU extensionheader 704 and a payload 706. The main header 802 includes the samefields as the main header 702 of FIG. 7. The source address anddestination address of the PMTU send packet 700 are used as thedestination address and the source address, respectively, of the PMTUreceive packet 800 during normal operation of the PMTU discovery system.A PMTU extension header value 808 is included to indicate to networkdevices that the extension header 804 is a PMTU extension header. Again,the value of 143 is used, but another available value may be used inother embodiments. However, the use of a single value in allimplementations may ensure interoperability. The extension header 804includes a PMTU value 810. Unlike any PMTU value in a PMTU send packet,PMTU value 810 is the actual PMTU value of the path between the sourceaddress and the destination address that is to be saved into the tableof PMTU information for future use. To improve security, the extensionheader 804 also includes authentication data 812, which corresponds tothe authentication data 712. In some embodiments, the authenticationdata 812 is the same as the authentication data 712, while in otherembodiments, no authentication data is included in either extensionheader 704 or 804.

FIG. 9 is a flow chart of a method 900 for determining an MTU of a pathbetween a source network device and a destination network device. Asdepicted in FIG. 9, the method 900 includes a plurality of steps. Instep 902, a source network device transmits a PMTU send packet with aninitial PMTU value from the source network device to the destinationnetwork device. In step 904, the destination network device transmits aPMTU receive packet from the destination network device to the sourcenetwork device. The PMTU receive packet includes a received PMTU value.This received PMTU value is included in a PMTU table on the sourcenetwork device when it is updated after source network device receivesthe PMTU receive packet, in step 906.

In order to better explain how method 900 may operate, an example usinginformation handling system 400 of FIGS. 4A, 4B, and 4C, the networkdevice 600 of FIG. 6, and the PMTU send and receive packets of FIGS. 7and 8. The network device 402 is directed to send a packet to networkdevice 408, both of which have at least the features of the networkdevice 600 of FIG. 6. The computer processor 602 of network device 402checks the PMTU information table 614 to see whether there is PMTUinformation associated with the address of network device 408. If thereis not, the network device 402 creates a PMTU send packet 700, and setsan initial PMTU value 710 therein to known next-hop MTU before sendingit out on one of its ports 606A-D (step 902).

The PMTU send packet 700 arrives at the network device 408, which usesits packet inspection module 612 to determine that it is a PMTU sendpacket which should be responded to with a PMTU receive packet. Thenetwork device 408 uses its packet inspection module 612 to extract thePMTU value 710 from the PMTU send packet 700 and the packet formatmodule 622 to insert the received PMTU value into a PMTU send packet800. This received PMTU value has been set and potentially reset by thenetwork devices 404 and 406 to indicate the PMTU of the total pathbefore arriving at network device 408. The network device 408 thentransmits the PMTU receive packet 800 through network devices 406 and404 to 402, with the received PMTU value in the extension header 804 ofthe packet (step 904). The network device 402 extracts the received PMTUvalue from the PMTU receive packet 800 and updates the PMTU informationtable 614 stored in memory 604 of network device 402.

Many variations of method 900 are within the scope of this disclosure.In some embodiments, additional steps may occur before, after, and inbetween steps 902, 904, and 906 as depicted. For example, someadditional steps may include receiving the PMTU send packet from thesource network device at an intermediate network device and resizing thePMTU send packet so that it is as small as or smaller than an MTU of anext link in the path to the destination network device. Thisintermediate network device may transmit the resized PMTU send packet tothe source network device. In some embodiments, the PMTU send packet isformed by adding a PMTU header including an initial MTU value to a datapacket. This initial MTU value is generally the known MTU of the nexthop link. Additionally, in embodiments in which a packet is to be sentfrom the source network device to a multicast address, the sourcenetwork device may select a lowest MTU value from a plurality ofreceived PMTU values received from a plurality of destination networkdevices associated with a multicast address.

In order to provide an additional level of security, authentication datais included in some embodiments. For example, authentication data isincluded in the PMTU send packet before transmitting it to thedestination device. The same authentication data in then included in thePMTU receive packet before transmitting it from the destination networkdevice to the source network device. While in some embodiments theauthentication data included in the PMTU send packet and the PMTUreceive packet is the same, in other embodiments the authentication dataincluded in the PMTU receive packet corresponds to authentication dataincluded in the PMTU send packet without being identical. The sourcenetwork device checks the authentication data included in the PMTUreceive packet with the authentication data included in the PMTU sendpacket.

Some embodiments of the method 900 also include steps that are part of aPMTU confirmation process. The PMTU confirmation process is used tomaintain the PMTU information table. Changes may occur in theinformation handling system that alter the PMTU seen between source anddestination network devices. The source network device may form a PMTUconfirmation packet by adding a PMTU header to a data packet and thentransmit the PMTU confirmation packet to the destination network deviceperiodically. The destination network device responds by transmitting aPMTU receive packet to the source network device.

Some embodiments of information handling systems 400 and 500 includetangible, non-transient, machine-readable media that include executablecode that when run by a processor, such as computer processor 602 ofnetwork device 600 in FIG. 6, may cause the processor to perform thesteps of method 900 as described above. Some common forms ofmachine-readable media that may include the steps of method 900 are, forexample, floppy disk, flexible disk, hard disk, magnetic tape, any othermagnetic medium, CD-ROM, any other optical medium, punch cards, papertape, any other physical medium with patterns of holes, RAM, PROM,EPROM, FLASH-EPROM, any other memory chip or cartridge, and/or any othermedium from which a processor or computer is adapted to read. Themachine-readable media may be memory 604 of FIG. 6.

The examples provided above are exemplary only and are not intended tobe limiting. One skilled in the art may readily devise other systemsconsistent with the disclosed embodiments which are intended to bewithin the scope of this disclosure. As such, the application is limitedonly by the following claims.

What is claimed is:
 1. A first network device in an information handlingsystem, the first network device comprising: a plurality of ports forsending and receiving packets, at least one of the ports having anassociated maximum transmission unit equal to a first value; one or moreprocessors in communication with the plurality of ports; and a memory incommunication with the one or more processors, the memory including apath maximum transmission unit (PMTU) table that associates each of aplurality of destination addresses with a maximum transmission unit(MTU) value in an MTU field; and wherein the first network device isconfigured to: send a PMTU send packet comprising a first MTU valuebased on a MTU size for a first immediate hop of a transmission path anda data packet to the destination address when the destination addressfor the data packet does not have an associated MTU value in anassociated MTU field of the PMTU table; and resend the data packet whena PMTU response is received comprising a second MTU value smaller thanthe first MTU value.
 2. The first network device of claim 1, wherein thePMTU send packet is sent using Internet Protocol version 6 (IPv6) andincludes the first value in a PMTU header of the PMTU send packet. 3.The first network device of claim 1, wherein the PMTU send packet isdecreased in size by at least one intermediate network device beforereaching the destination address.
 4. The first network device of claim1, wherein the first network device is configured to update theassociated MTU field upon receipt of a PMTU receive packet from a secondnetwork device, the second network device having the destinationaddress.
 5. The first network device of claim 1, wherein the PMTU sendpacket includes authentication data.
 6. The first network device ofclaim 1, wherein the destination address is a multicast addressassociated with a plurality of destination network devices, each of theplurality of destination network devices generating a PMTU receivepacket in response to the PMTU send packet, each PMTU receive packetincluding a third MTU value, the first network device being configuredto update the PMTU table to include a lowest MTU value of the third MTUvalues in the associated MTU field.
 7. An information handling systemcomprising: a first network device, the first network device being asource device; a second network device, the second network device beinga destination device; and at least one intermediate network device, thesource device, the destination device, and the at least one intermediatenetwork device being part of a plurality of network devices, wherein: ifpath maximum transmission unit (PMTU) information for a path between thesource device and the destination device is not known, the source devicesends a PMTU send packet with a first MTU value, the first MTU valuebased on a first immediate hop of the path, with a data packet to thedestination device, the destination device sends a PMTU receive packetwith a received PMTU value to the source device and the source deviceresends the data packet when the received PMTU value is below the firstMTU value.
 8. The information handling system of claim 7, wherein thesource device updates a table of PMTU information with the received PMTUvalue.
 9. The information handling system of claim 8, wherein the PMTUsend packet includes an initial PMTU value that is larger than thereceived PMTU value.
 10. The information handling system of claim 7,wherein the PMTU send packet includes sent authentication data.
 11. Theinformation handling system of claim 10, wherein the PMTU receive packetincludes received authentication data and the source device updates atable of PMTU information with the received PMTU value if the receivedauthentication data corresponds to the sent authentication data.
 12. Theinformation handling system of claim 7, wherein the source deviceperiodically sends a PMTU confirmation packet to the destination device,the destination device responding with a corresponding PMTU receivepacket.
 13. The information handling system of claim 7, furthercomprising a multicast address that is an address for a plurality ofdestination network devices, the plurality of destination networkdevices including the destination device; and wherein: the source deviceis configured to send a respective PMTU send packet to each of theplurality of destination network devices, each destination networkdevice of the plurality responding by sending a respective PMTU receivepacket that includes a second MTU value, and to select a lowest MTUvalue of the second MTU values.
 14. A method for determining a maximumtransmission unit (MTU) of a path between a source network device and adestination network device, the method comprising: transmitting a datapacket with a path maximum transmission unit (PMTU) send packet with aninitial PMTU value, the initial PMTU value based on a first immediatehop of a transmission path, from the source network device to thedestination network device; transmitting a PMTU receive packet from thedestination network device to the source network device, the PMTUreceive packet including a received PMTU value; updating a PMTU table onthe source network device with the received PMTU value included in thePMTU receive packet; and resending the data packet when the receivedPMTU value is below the initial PMTU value.
 15. The method of claim 14,further comprising: receiving the PMTU send packet at an intermediatenetwork device; resizing the PMTU send packet so that the PMTU sendpacket is as small or smaller than an MTU of a next link to create aresized PMTU send packet; and transmitting the resized PMTU send packetto the destination network device as the PMTU send packet.
 16. Themethod of claim 14, further comprising: adding a PMTU header to the PMTUsend packet, the PMTU header including the initial PMTU value; andadding authentication data to the PMTU send packet.
 17. The method ofclaim 14, further comprising: including authentication data in the PMTUreceive packet before transmitting the PMTU receive packet from thedestination network device to the source network device, theauthentication data included in the PMTU receive packet corresponding toauthentication data included in the PMTU send packet; and checking theauthentication data included in the PMTU receive packet with theauthentication data included in the PMTU send packet.
 18. The method ofclaim 14, further comprising: decreasing a size of the PMTU send packetat least once before the PMTU send packet is received at the destinationnetwork device.
 19. The method of claim 14, further comprising: forminga PMTU confirmation packet by adding a PMTU header to a data packet;transmitting the PMTU confirmation packet from the source network deviceto the destination network device periodically; transmitting acorresponding PMTU receive packet from the destination network device tothe source network device in response to the PMTU confirmation packet.20. The method of claim 14, further comprising selecting a lowest MTUvalue from a plurality of received PMTU values received from a pluralityof destination network devices associated with a multicast address.